function Deposit(uint _value) public returns(bool) {
        require(depositStatus);
        require(_value >= 100000 * (10 ** 18));
        require(token.allowance(msg.sender, address(this)) >= _value);

        User storage user = users[msg.sender];

        if(!user.exists){
            usersList.push(msg.sender);
            user.user = msg.sender;
            user.exists = true;
        }
        user.totalAmount = user.totalAmount.add(_value);
        totalTokensDeposited = totalTokensDeposited.add(_value);
        user.contributions.push(Contribution(_value, now));
        token.transferFrom(msg.sender, address(this), _value);

        stakeContractBalance = token.balanceOf(address(this));

        emit Deposited(msg.sender, _value);

        return true;

    }