add ability to nest self referencing parser