Refactor early for clarity, this problem isn't so bad after all