implements #27