flatten namespace
move Trait classes to namespace vsmc and implementations to internal