getting better, functionality present but still buggy