refactor viewlet so we can inherit from it and change only the token