more work on constructor