refactor/expand specs a la Ch.5 exercises