rework eagle export to be type driven (Closes #19)