uses view variables, instead of doing calls