1. Minor updates; introduced a base class