Rewrote in go, added multi-destination feature