how long
refactor how_long