change order of hydration to before protected constructor
fix return type hint
no need to call verifyDao twice on save and delete