Refactor, add docs, use plutil for binary plists