optimizing parsing logic using a manager and a sperate seperate parser