printer class code refractored - so far allows one init and one term message per thread