make sure play done callback is always called
start using after time
extract functions
print newline when finished