Refactor/Rewrite chown. I think this is probably a lot cleaner. This makes permissions a tad smarter and allows other modules to hook in. This also treats tasks provided by outside modules together with hard coded tasks to give accurate progress.