#4 Implement optimize command
Refactoring: let all go through si.Update one function call overhead but may worth not checking connection everywhere
Refactoring: all those commands go through update so just call update directly