Added implementation
Added benchmark