finish basic task functional