best version so far still seg faults