[minor] rewrite compiler to account for file changes