modified
still working and editing #26-31