Crazy refactoring
One more refactor