fc4 implementation; modifying existing code to reuse them