version 1 of assignment 4.1