renamed FAST to ACE, and use SFunc in the place of Functor