split parser to some part with chain of responsibility