add constructer