Capable of building onComplete and handle case for state