We seem to be doing this a lot, do we need to refactor something?