General refactoring, moving big parts of code in separate files, added renderer implemented with Singleton, small renamings.