added some new things... still working on this code...
deleted