Needs a rewrite, do not use yet
rewrote to be more general- std mode is giving incorrect values for alpha at the moment, suboster and oster modes should work though