General purpose library