major refactoring removed IOFXObject