add set impl