initial push with almost all working code. Just need to do some testing.