feat: add pattern/3-tier for mvc