-introduced namespaces to define different implementations