refactor parse method to return body and memoize body