this approach actually seems to be kinda fast now