Fleshed out the architecture more, implemented a basic rendering demo