Merge Development Changes to master

Just still adding more base classes and implementing base features.