add spec, extract methods