Implement AutoMapper to remove all ugly mappings

Implement AutoMapper to remove all ugly mappings