Moved implementation into detail subnamespace