rewrote how program deals with data