refactored message