Refactor in progress...
Hell refactoring