for better efficiency have MessageUser function handle both user and page