created Level abstract class, not used yet