Overhaul, introduce TableGateway