Plugin classes proper use of abstract