full circle, only nicen up the code todo