library should be ready for higher-order script writing