Observer Pattern added to create 3d button