Implements #28
Implements #29