FPE advanced class
By @Hazard