add message class and some networkIO work