working version
updated bench :)