refactor free subscription