cleanup fully functional -- just need documentation