slower, but works :/