Moved parsing to applicative style w/ clearer errors