refactoring/rearranging