Refactoring app model (Implementing hasn't been completed yet)