fixed sub-constructors