separate frontend and backend logical + templating engine