contract Reclaimable is Ownable {
	/**
	* @dev Transfer all Ether held by the contract to the owner.
	*/
	function reclaimEther() external onlyOwner {
		address(uint160(owner())).transfer(address(this).balance);
	}

	/**
	* @dev Reclaim all ERC20Basic compatible tokens
	* @param token ERC20Basic The address of the token contract
	*/
	function reclaimToken(IERC20 token) external onlyOwner {
		uint256 balance = token.balanceOf(address(this));
		token.transfer(owner(), balance);
	}
	/**
	* @dev Reclaim ownership of Ownable contracts
	* @param contractAddr The address of the Ownable to be reclaimed.
	*/
	function reclaimContract(address contractAddr) external onlyOwner {
		Ownable contractInst = Ownable(contractAddr);
		contractInst.transferOwnership(owner());
	}
}
/**
 * @dev Contract module which allows to reclaim funds 
 * sent to this contract by mistake.
 */
function reclaimEther() external onlyOwner {
	address(uint160(owner())).transfer(address(this).balance);
}

/**
 	* @dev Transfer all Ether held by the contract to the owner.
 	*/