both functions completed