rework parser interface