new design impls