modified : constructor