lots of refactoring, disconnected icon bug fix