more code fixes
exception and code refactor with more superclasss