exposed generic method