This parses need some serous refactoring to multiple methods ;)