updated design with semantic classes