Full FP implementation