refactoring now mess