add container aware trait
refactoring
fix tests
refactoring
doc block
Merge branch 'develop'