Refactor marc handling.

 - Added basic fields to marc
 - refactored code to be cleaner and more decoupled