message function implement