Completed V2, added comments