refactoring to assignment specifications