Since a generic function, maybe we should put it somewhere else instead of cp_user