added a constructer