Created Separate Callers

Sorry Tim, I separated it into a separated class because of threading
and android arch issues. I left the super commented.