rewrote persistence/mongo to allow types and return clean promises for all basic CRUD operations