moved some code away from taker.py