real-world implementations