implements #7