stylistic, try not to wrap conditionals in parentheses so much; also try not to use implicitly unwrapped optional as conditional (surely it's a bug that this still works)