ffa refactored to use common base class
a few TODOs and notes