working on custom ast production framework