Moved private code in detail namespace