no matter how it's implemented, it must not be a user-requiring (or even user-facing) task