Nit: I don't like it when if conditions wrap multiple lines, I think it hurts readability. Just a personal preference, though, so feel free to ignore.