Added SHA1 support, made a more general interface, many things, unicorns.