state/observer library