add communicate abstract classes and add new demo nav