spec out existing functionality