Implemented question 3 and 4.