all functions completed