how a good library should work