auto build and protect inside of constructor