rudimentary implementation of messages