Type checking for __init__ and __call__ parameters is not better done. Also fixed a bug where __init__ methods were inherited from base classes.