Added: SF, divided to classes, and generated generic classes