maybe have to rewrite some of what I just did