contract OncoToken is MintableToken, Pausable, FreezableToken, BurnableToken {
    string constant public name = "ONCO";
    string constant public symbol = "ONCO";
    uint8 constant public decimals = 18;

    /**
    * @dev Empty OncoToken constructor
    */
    function OncoToken() public {}

    /**
    * @dev Transfer token for a specified address with pause and freeze features for owner.
    * @dev Only applies when the transfer is allowed by the owner.
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) whenNotPaused public returns (bool) {
        require(!isFrozen(msg.sender));
        super.transfer(_to, _value);
    }

    /**
    * @dev Transfer tokens from one address to another with pause and freeze features for owner.
    * @dev Only applies when the transfer is allowed by the owner.
    * @param _from address The address which you want to send tokens from
    * @param _to address The address which you want to transfer to
    * @param _value uint256 the amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint256 _value) whenNotPaused public returns (bool) {
        require(!isFrozen(msg.sender));
        require(!isFrozen(_from));
        super.transferFrom(_from, _to, _value);
    }
}
function OncoToken() public {}

/**
 * @dev Empty OncoToken constructor
 */