this block looks a bit crazy ... Nested constructors + indents ...