Restructured to support multiple algorithms

algorithm is explicitly given
parallel flag passable
magic numbers -> static consts
    how strings?