built general functions