Is there a nice way to get rid of this switch statement? I've always disliked it because it makes the method so long...