assembly refactoring