Add pry to Gemfile for debugging
Refactor type_valid?
First shot at required and optional properties to make up for a nicer API