all error checking done except for public/private messages