Based on Omnibinder - with a couple of improvements