this implements #57