Commit of complete code

This commit contains code implementing the assignment functions as
required.