Implement DateGenerator and DataSource.
Project implements DataSource.
Project is no longer a DataSource. Add AggregatedSource class that aggregates multiple DataSources. Project returns this instead.
Implement Entry.
Remove old entry building code.
Calculate percentage based on the large of current total or final total.