What was the first practical implementation based on