First prototype object model

Initial pull request as I start work