Complete rewrite to Object Oriented class
Merge branch 'develop'