Implementation of assignment3.0 See merge request !2
Implementation of assignment3.0 See merge request !1
This reverts commit cd03bd46.