implementino static functions