changed the access level template method to use a private interface in order to limit its visibility