Add working message system, and tests