Refactor mapper and add Invoice support