strategy pattern context. There are any references about strategy pattern context in here. you can look below.