private View getView(String action) {
		if (views.containsKey(action))
			return (View) views.get(action);
		
		else {
			String category		= this.getClass().getSimpleName().replace("Controller", "").toLowerCase();
			String viewsPackage = "app.views.";
	
			category = category.equals("app")? "" : (category + ".");
			viewsPackage += category;
	
			action = action.substring(0, 1).toUpperCase() + action.substring(1);
			action = action + "View";
		
			try {
				View view = (View) Class.forName(viewsPackage + action).newInstance();
				view.setController(this);
				view.setModel(model);
				return view;
			}
			catch (ClassNotFoundException exception) {
				System.out.println("View '"+ action +"' not found!");
				System.out.println(exception.getMessage());
			}
			catch (InstantiationException exception) {
				System.out.println("Failed to create an instance!");
				System.out.println(exception.getMessage());
			}
			catch (IllegalAccessException exception) {
				System.out.println("Illegal access!");
				System.out.println(exception.getMessage());
			}
			
			return null;
		}
	}