Split runner into shared + platform. Also split out messages into shared project