PLA-1628 Refactor Special Promote

this is taken from Avatar Image handling and might be addressed in PLA-1656. but right now it would be best for the implementation to not diverge too much from original.