message parser is now an object