incomplete and nonfunctional solution for #18