pragma solidity >=0.4.24;

contract SimpleStorage {

    event ValueChanged(address indexed author, address indexed oldAuthor, uint256 oldValue, uint256 newValue);

    address public lastSender;
    uint256 public value;

    function setValue(uint256 _value) public {
        emit ValueChanged(msg.sender, lastSender, value, _value);
        value = _value;
        lastSender = msg.sender;
    }
}