tidy
add timings
refactor