making some use of private functionality functions