finished full library and basic example