bad refactoring
crappy stuff
Working