add duration parser and tests