Although flip flops can be created from gates (and they are usually taught this way), in silicon they are usually implemented from raw transistors in feedback configurations, because implementing a flip flop from gates requires more transistors than it does when you bypass the gate-level abstraction.