Works, but not abstracted