finish many functions