Fix downloading, simplify implementation

The transact method now checks all handlers return "OK" or raises an
error. Added a few todo comments