move defaults/context filling to it's own method