add a field in Revision to represent the date when each revision was committed
add an interface to represent the protocol of how versions are expected to be provided
create a class to represent file changes
make Version have file changes