WIP - Finished stubbing out main interfaces. Some implementation.