added two versions for #30