Added viewer manager and rule abstract class