uses variables