added ABCMeta on each class that need it