all functions have been done.