Project structure, first pass at router + initial routing