Refactor Subscribe()