parse logic complete