refactor specs to use context and let methods
recfactor specs to use shared examples