updated version
updated version and the caller is now returning an option of string