First commit of actual code. Mainly just some architecture