refactor instruction executor