Would a pattern match and multiple methods be more readable here?