universal logic move from view to models; models improvements; TODO: think of name in Edge class