Task12.1-3 initial commit