finished original spec features, next: refactor