refactor and decouple file tailer from event source