finish 80% function