Separate parsers, add tests