lot of refactoring, added cursor and cube map loading