shouldn't we have a defaults object outside?