What do applications have to implement?