Many, many changes, added Permutation and Combination classes