message functionality completed