a more sane way to do defaults