consolidating timeline generation into a class