Maybe this isn't worth it now, but it seems that StudentExercise should have #complete?, #incomplete?, #correct?, #incorrect? methods to clean up that interface so code won't easily break in the future.