add get_or_create functionality to subscribe() function and fix tests to include subscribe()