Separate type construction from formatting