fixes #1257
refactored user promotion code, related to #1257