added mongodb implementation