assignment 3 source code