add a whole bunch of improvment