Refactor internal implementation, to user parsers