basic library