finally added support for zipping files, also created GenericFile class