implement navigator, write testcases
restore php 5.3 compatibilty