contract RecoverCurrency is AuthorizedList, Authorized {

    event EtherRecovered(address indexed _to, uint256 _value);

    function recoverEther() external ifAuthorized(msg.sender, APHRODITE) {
        msg.sender.transfer(address(this).balance);
        emit EtherRecovered(msg.sender, address(this).balance);
    }

    /// @dev Reclaim all ERC20Basic compatible tokens
    /// @param _address The address of the token contract
    function recoverToken(address _address) external ifAuthorized(msg.sender, APHRODITE) {
        require(_address != address(0));
        IERC20Basic token = IERC20Basic(_address);
        uint256 balance = token.balanceOf(address(this));
        token.transfer(msg.sender, balance);
    }
}
/// @title Authorized account can reclaim ERC20Basic tokens.
function recoverToken(address _address) external ifAuthorized(msg.sender, APHRODITE) {
    require(_address != address(0));
    IERC20Basic token = IERC20Basic(_address);
    uint256 balance = token.balanceOf(address(this));
    token.transfer(msg.sender, balance);
}

/// @dev Reclaim all ERC20Basic compatible tokens
/// @param _address The address of the token contract