major refactoring, new classes, a new loader, some css additions