pre branch refactor, because i'm a dumbass