Added separate onPrivateMessage method to handle PMs.