Implemented Problem 1 and 2