clean up and some refactoring

 - Merged Base and Access into Container
 - Added Trait
 - Added Unique