Could you help me understand why framework-specific logic, like `createAsyncThunk`, is included in the business layer? cc: @Abouelyatim