refactored Skyscraper.ClientCommands, splitting state behaviour from non stated behaviour.