add feed parser, some refactoring