Feature/generate named constructor from beConstructedThrough

Why not use 'self'? Would simplify the logic considerably