- let action determine which methods are implemented
- throw an exception when a query fails