added tests, fixed custom filter arguments, fixed path filter, added callback usage style, added documentation and general restructure