None of the above functions seem user specific, can they be moved out to a separate module?