finish tutorial implementation