Price Oracle Contract

Here is my price oracle token contract. I would appreciate any feedback on it to make sure its secure:

// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/math/SafeMath.sol";
interface IMyToken {
function mintCost(uint256 amount) external view returns (uint256);
contract MyTokenPriceOracle is Ownable {
using SafeMath for uint256;
address public MyToken;
event MyTokenUpdated(address indexed MyToken, address indexed oldMyToken);
constructor(address _myToken) public {
require(_myToken != address(0), "invalid my token address");
myToken = _myToken;
function updateMyToken(address _newMyToken) external onlyOwner {
require(_newMyToken != address(0), "invalid my token address");
require(_newMyToken != myToken, "invalid my token address");
address oldMyToken = myToken;
myToken = _newMyToken;
emit MyTokenUpdated(myToken, oldMyToken);
function latestAnswer() public view returns (int256) {
uint256 ethPerMTK = IMyToken(myToken).mintCost(1e18);
return int256(ethPerMTK.div(1e10));

Would like to help, but this is impossible to read.

I can't understand with it all jam-packed like that