simplified implementation; user buttons (resolved #18 & #19); dom printer class