4th version seperating view from request handler