Completely removed igState and replaced it with state pattern implementation