Updated to latest rust, added take_only Vec method, add factorisation module