use steady_clock instead of clock
use poll instead of busy wait - closes #1