reminder: use db exceptions and parameters