Code rewrite + improvement

Not yet implemented : Upgrade and uninstall process