Major refactoring going on....