it’s normal to initialize instance with class, then the instance hold status
but we may want the “fs” be in other FS, like s3, google drive.
so we can say
but in many cases, backend will not change.
so in oop, we need a class to generate class, we call it Factory / Manager
well, looks familiar, right?
this is high order function!
so we can have
and we can easily have very deep nest.