cleaned up Message.pm, based it off of Task.pm but overrode new and _encode; _decode is generic