Reworked to remove wrapper types.  Almost works... WIP.