Remove lots of duplicate code and move it into one