Separated Ferop core implementation and public types