Make exception type consistent
Make search() more convenient to use
Keep install() API compatible
Fix remove_environment
Add clone_environment
Add more tests