more oop...ready to test on the Arduino