Note that #56 is work in progress