base messages functionality