Observer and Factory patterns added