making parser a separate entity