I'm going to refactor this, it's getting more complicated than I need it to be or am comfortable with.