added abstract render path base class and minor refactoring