class EventListener {
    public:
            virtual ~EventListener() {}
virtual void refresh() = 0;
            };
class EventEmitter {
    public:
            virtual ~EventEmitter() {}
virtual void subscribe(EventListener*) = 0;
            };
class TickGen : public EventEmitter
{
    public:
            virtual void start() = 0;
            };
class GPSLocator : public EventEmitter, public EventListener
{
    public:
            virtual int get_pos_x() = 0;
virtual int get_pos_y() = 0;
            };
class NavDisplay : public EventListener 
{