basic library interfaces