static functions