cycle test
inject by factory test
function renamed
coding standard
conding convention
more convention refactoring
static assert on interface polymorphism
make_shared
some todos and make_shared