should this be wrapped in a if(_highlightedColor != highlightedColor) so that createButtonStates is not called for changeless calls?