refactored, re-indented, message method rewirtten