Refactored the DataTypes mess a bit