refactor and spec