basic library definitions