Separates object construction from its representation