add chuck and improve a lot of stuff