functional complete