cleaned up compiler infrastructure, caching is still shitty