refactor code and add description support to special page