better db abstractions