use std::chrono for timing