add spec logic