Updated for strategy pattern for behaviors and dynamic algorithms runtime