Separation of concerns in app and record extensions