lots of changes to the content loading (and separated into own project)