Iteration 2: A better interface