added logic to ProgramModel for adding and deleting classes and packages.

need to override add/delete methods in sub classes. make sure they also call super add/delete