crap
intr
move to core.async for easier programming