First pass at a basic structure, butstill needs a lot of work.