added list option + degeneralized uninstall function