refactored a lot, added recordparser