improved object parser