this may be a copyright violation and in dreadful need of a rewrite sep utc