real world implementations