fearless refactoring of TimelinePlayer