Clean up.
Add phantom type for output.
Hide phanton type constructor.
Do not expose phantom type constructor to user.