added iserializable interface to some classes