a little cleaner version
push on clojar