all types of rows implemented with factory pattern, computed row is updated with the use of the observer pattern. TODO : if-then-else blocks