added sqrt impl split up into more inner functions
removed unnecessary params that are shadowed anyway
added gcd impl
added factorial impl + tailrec version
added unit tests for pascal and handle invalid args
balance impl