Lots of refactoring, working on asset handling now that I have cygwin finally building mingw32 binaries properly