actually used this and realized it needed some fixes