fsa implementations