implements #31