a smart bmvp framework for you SPA