Currently updating this so that the library is kept minimally changed, feature additions will be handled in a separate repo.