implemented custom messages