adding recursive parse