finish required task #4 & #5