Ian: split parser into message and bitmap reader so the bitmap reader can be reused