redesign DB tables && decouple DB ops