modifid public construct