Changes for optimization refactoring