Started work on #62 and #68, but blocked by #61.