contract HyperionWattToken is MintableToken {

  string public constant name = "Hyperion Token ";

  string public constant symbol = "HWT";

  uint8 public constant decimals = 18;
  
  //Dividends allready claimed by Investor
  mapping (address=> uint256) public assuranvePayments; 
  uint256 totalAssuranvePayments ;
  
  function increaseAssuranvePayments(address _investor,uint256 _amount ) onlyOwner public
  {
    assuranvePayments[_investor]+=_amount;
      
  }
   function decreaseAssuranvePayments(address _investor,uint256 _amount ) onlyOwner public
  {
    assuranvePayments[_investor]-=_amount;
      
  }
  //When transfering tokens decrease assuranvePayments for sender and increase for reciever
  function transfer(address _to, uint256 _value)public returns (bool){
    uint256 transferedClaims = assuranvePayments[msg.sender].mul(_value.div(balances[msg.sender]));
    assuranvePayments[msg.sender]-=transferedClaims;
    assuranvePayments[_to] += transferedClaims;

    return super.transfer(_to,_value);
  } 
  function tranferFrom(address _from, address _to, uint256 _value) public returns (bool){
    uint256 transferedClaims = assuranvePayments[msg.sender].mul(_value.div(balances[msg.sender]));
    assuranvePayments[msg.sender]-=transferedClaims;
   assuranvePayments[_to] += transferedClaims;

    return super.transferFrom(_from, _to, _value);

  }
}
function transfer(address _to, uint256 _value)public returns (bool){
  uint256 transferedClaims = assuranvePayments[msg.sender].mul(_value.div(balances[msg.sender]));
  assuranvePayments[msg.sender]-=transferedClaims;
  assuranvePayments[_to] += transferedClaims;

  return super.transfer(_to,_value);
} 

//When transfering tokens decrease assuranvePayments for sender and increase for reciever