implements #24