def create(endpoint):
    ns = Namespace(TWITTER_USERNAME)
    d = ns.createChild(endpoint, TWITTER_FRIENDS_NAMESPACE_NAME,
                       'Holds tags for users to indicate friends.')
    addCallbacks(d, 'Created friends namespace %r.' %
                 TWITTER_FRIENDS_NAMESPACE_NAME)
    yield d

    d = ns.createChild(endpoint, TWITTER_FOLLOWERS_NAMESPACE_NAME,
                       'Holds tags for users to indicate followers.')
    addCallbacks(d, 'Created followers namespace %r.' %
                 TWITTER_FOLLOWERS_NAMESPACE_NAME)
    yield d

    d = ns.createChild(endpoint, TWITTER_USERS_NAMESPACE_NAME,
                       'Holds tags for info about Twitter users.')
    addCallbacks(d, 'Created users namespace %r.' %
                 TWITTER_USERS_NAMESPACE_NAME)
    yield d

    # createChild (above) will return a Namespace when txFluidDB gets fixed.
    userNs = ns.child(TWITTER_USERS_NAMESPACE_NAME)

    for name, desc in (
        (TWITTER_ID_TAG_NAME, 'Twitter user id.'),
        (TWITTER_SCREENNAME_TAG_NAME, 'Twitter screen name.'),
        (TWITTER_UPDATED_AT_TAG_NAME,
         'Time (in seconds) of last update of this user in Fluidinfo.'),
        (TWITTER_N_FRIENDS_TAG_NAME, 'Number of friends of a Twitter user.'),
        (TWITTER_N_FOLLOWERS_TAG_NAME,
         'Number of followers of a Twitter user.'),
        (TWITTER_N_STATUSES_TAG_NAME,
         'Number of status updates of a Twitter user.')):

        d = userNs.createTag(endpoint, name, desc, False)
        addCallbacks(d, 'Created tag %r.' % name)
        yield d