added implementation docs