@private

    The decorator makes the function inaccessible from outside the contract.

    The @public decorator makes the function both visible and executable publicly. For example, even the Ethereum wallet will display such functions when viewing the contract.

    @constant

    @payable

    Only functions with the decorator are allowed to transfer value.