more parsing and caching, but feeling uninspired so I will resume later