Make sure to file separate issues for all of the TODOs below.