made base classes abstract
changed package