redo Duration API to use Characters::String