* Added implementation and tests * Add docs, simplify implementation * Remove unused func * Update docs