first constructor complete