Hey thanks for reading and asking these.
Answer 1- It’s totally depending on your use-case, and yes we can keep it on any thread. You can use RxJava and make the data manager return an Observable and subscribe to it in presenter and specify the threads you want.
Answer 2- Yes you are correct. Mostly I advocate using singleton for the data manager instantiated by the application class using application context. I’ll add this part. Thank you for pointing it out.