two useful classes