Initial stab at bytecode generation and what runtime looks like, major refactoring