added separators
added abstract classes