turn tagger into much nicer/reusable lib