trying to remember how this works