wow this is amazing. was thinking about whipping something similar for my own project but glad that someone had same problem before. saved me some time.