Initial Code

Needs (a lot of) work still