moved defaults to constructor