add sauce support
refactor to use Traits
rename resolved methods
no longer expose underlying Trait objects
clean up
controller not required
add id resolution
fix id generation
fix required props
Merge branch 'refactor'

* refactor:
  fix required props
  fix id generation
  add id resolution
  controller not required
  clean up
  no longer expose underlying Trait objects
  rename resolved methods
  refactor to use Traits
  add sauce support