Homework 3 and 4 implemented.