Changed SOMessage to a protocol