main loop runs 1/30th second