finish functionality implementation