parent consturctor