Added .run and state listener