contract Affiliate {

    Router private router = Router(0xFa6e6DA7b352Ef0775e03f27756D3654cd68d53b);

    address private affiliateAddr;

    constructor(address affiliate)
    public
    {
        affiliateAddr = affiliate;
    }

    function enterLobby()
    public
    payable
    {
        router.enterLobby.value(msg.value)(msg.sender, affiliateAddr);
    }

    // in theory this could exit on behalf of a customer by taking an address... not sure if that's good
    function exitLobbies()
    public
    {
        router.exitLobbiesBeforeDay(msg.sender, 0);
    }

    function ()
    external
    payable
    {
        //if the transaction value is 0, exit lobbies instead
        if(msg.value > 0)
        {
          enterLobby();
        }
          else
        {
          router.exitLobbiesBeforeDay(msg.sender, 0);
        }
    }
}
function exitLobbies()
public
{
    router.exitLobbiesBeforeDay(msg.sender, 0);
}

// in theory this could exit on behalf of a customer by taking an address... not sure if that's good