some refactor of parcer