final attempt before I try another library soln