separated spec into smaller ones