create desc struct to give freedom to convenience funcs