Refactor Module Model

Promise everything and use the mixins
Promise save and load callbacks