LICENSE AGREEMENT

Your use of Worklog Assistant is governed by the following Terms and Conditions:

Acceptance of License Agreement

You should carefully read the following terms and conditions before using
Worklog Assistant (the "Software"). Unless you have a different license
agreement signed by Fizz Buzz Inc., your use of this software indicates your
agreement to these terms and conditions. If you do not accept all of these terms
and conditions, you must cease using the Software immediately.

Copyright

Licensee acknowledges that the Software, License Key and accompanying user
documentation ("Documentation") are copyrighted works and that Licensee has no
rights in the foregoing except as expressly granted herein.

Free Trial

Fizz Buzz Inc. hereby grants you a non-exclusive, non-transferable, limited
licensed to use the Software free of charge for a period of thirty (30) days.
Use of the Software beyond the thirty (30) trial period requires the purchase of
a License Key as described below. Use of the Software beyond the thirty-day
(30-day) trial period without purchase of a License Key is a violation of
Canadian and international copyright laws.

License Key

A unique key that will allow you to use the Software beyond the thirty-day
(30-day) free trial period ("License Key") may be purchased from the Worklog
Assistant website, which is currently http://worklogassistant.com. License Keys
may be purchased for single or multiple users, and are priced according to the
price list on the Fizz Buzz Inc. website. Upon purchase of a License Key, Fizz
Buzz Inc. hereby grants you a non-exclusive, non-transferable 1-year license to
use the Software as follows:

A License Key may be purchased based upon the number of computers on which the
Software will be installed for use by the same number of users. You may not use
the Software in excess of this number. A License Key may not be used by
subsidiary or parent companies, customers or any other third parties.

Licensee Obligations

The Licensee shall be responsible for maintaining the License Key in a safe
location and are specifically prohibited from distributing the License Key,
intentionally or unintentionally, to any third party. Upon loss or distribution
of the License Key, Licensee shall be required to pay a reinstatement fee at
Fizz Buzz Inc.'s discretion.

Distribution of the Software

Provided that you do not copy or distribute the License Key, and you include a
copy of this License Agreement, you may (a) make copies of the Software; (b)
give exact, unmodified copies of the Software to anyone; and (c) distribute the
Software in its unmodified form via electronic means. You are specifically
prohibited from charging any fees for any such copies or distributions.

Term and Termination

You may continue to use the Software for as long as you comply with the terms
and conditions of this License Agreement. Fizz Buzz Inc. may terminate this
License Agreement immediately upon notice to you in the event that Fizz Buzz
Inc. has reason to believe you have breached this License Agreement. Upon
termination, you shall immediately cease all use of the Software, License Key
and Documentation and shall not be entitled to a refund of any fees paid.

Governing Law

The validity and interpretation of this Agreement shall be governed by the laws
of Canada and the Province of Ontario. Licensee agrees that the courts located
in the Province of Ontario, city of Toronto, shall be the appropriate site of
venue for actions relating to this Agreement, and hereby consents to the
exclusive jurisdiction and venue of such courts.

Disclaimer of Warranty

THE SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS." TO THE MAXIMUM EXTENT
PERMITTED BY APPLICABLE LAW, FIZZ BUZZ INC. DISCLAIMS ALL WARRANTIES, EITHER
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE ANY
LIABILITY OF FIZZ BUZZ INC. WILL BE LIMITED EXCLUSIVELY TO REFUND OF THE
PURCHASE PRICE.
