class YourProjectLocationController extends AsyncAdaptor {

    @GetMapping
    @AsyncMethod
    @PreAuthorize("hasAnyAuthority('applicant', 'support', 'innovation_lead', 'ifs_administrator', 'comp_admin', 'project_finance', 'stakeholder', 'external_finance', 'knowledge_transfer_adviser')")
    @SecuredBySpring(value = "VIEW_PROJECT_LOCATION", description = "Applicants, stakeholders, internal users and kta can view the Your project location page")
    public String viewPage(
            @PathVariable("applicationId") long applicationId,
            @PathVariable("organisationId") long organisationId,
            @PathVariable("sectionId") long sectionId,
            UserResource loggedInUser,
            Model model) {

        Future<CommonYourProjectFinancesViewModel> commonViewModelRequest = async(() ->
                getViewModel(applicationId, sectionId, organisationId, loggedInUser));

        Future<YourProjectLocationForm> formRequest = async(() ->
                formPopulator.populate(applicationId, organisationId));

        model.addAttribute("model", commonViewModelRequest);
        model.addAttribute("form", formRequest);

        return VIEW_PAGE;
    }

    public  YourProjectLocationController();
    @Autowired  YourProjectLocationController(
            CommonYourFinancesViewModelPopulator commonViewModelPopulator,
            YourProjectLocationFormPopulator formPopulator,
            ApplicationFinanceRestService applicationFinanceRestService,
            SectionService sectionService,
            UserRestService userRestService,
            OrganisationRestService organisationRestService);

}