remove log and add dart implementation