subscription and preference functionality