contract BasicToken is ERC20Basic {
  using SafeMath for uint256;
  mapping(address => uint256) balances;

  /**
   * BasicToken transfer function
   * @dev transfer token for a specified address
   * @param _to address to transfer to.
   * @param _value amount to be transferred.
   */
  function transfer(address _to, uint256 _value) public returns (bool) {
    //Safemath functions will throw if value is invalid
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
   * BasicToken balanceOf function 
   * @dev Gets the balance of the specified address.
   * @param _owner address to get balance of.
   * @return uint256 amount owned by the address.
   */
  function balanceOf(address _owner) public constant returns (uint256 bal) {
    return balances[_owner];
  }
}
/**
 * @title BasicToken
 * @dev Basic version of Token, with no allowances.
 */
function balanceOf(address _owner) public constant returns (uint256 bal) {
  return balances[_owner];
}

/**
 * BasicToken balanceOf function 
 * @dev Gets the balance of the specified address.
 * @param _owner address to get balance of.
 * @return uint256 amount owned by the address.
 */