Commited parts 3 and 4