refactoring to custom parser - 1