run/stop methods have to be public
non blocking write