initial commit. This represents the work of a few hours