inheritable function