extracted abstract base class
added l1c dimensions