Native implementations should be private