refactor DSL

subordinate objects via contains