Added a working factory design pattern

Added a working design pattern + gradient block new methods