This should live in epochs.py don't you think?