need to call parent constructor