draft: use db exceptions and parameters