contract Coinsling {

    address public owner;

    function Coinsling() public {
        owner = msg.sender;
    }

    event TokenCreated(address token);
    function sling(
        string _description,
        string _logoURL,
        string _name,
        string _symbol,
        uint   _totalSupply
    ) public payable returns (Token token)
    {
        token = new Token(
            _description,
            _logoURL,
            _name,
            _symbol,
            _totalSupply
        );

        TokenCreated(token);
        return token;
    }

    // This allows me to collect the revenue paid into the contract
    function transfer(uint amount, address to) public {
        require(msg.sender == owner);
        to.transfer(amount);
    }
}
// Sample constructor args
// "0x54686520746f6b656e20666f7220617765736f6d652070656f706c652e", "0x68747470733a2f2f692e696d6775722e636f6d2f5a336871756c492e6a7067", "0x417765736f6d6520546f6b656e", "0x415745", "0x52b7d2dcc80cd2e4000000"
function transfer(uint amount, address to) public {
    require(msg.sender == owner);
    to.transfer(amount);
}

// This allows me to collect the revenue paid into the contract