state based animation framework