a constant STATE_COMPLETE will make it more readable