refactoring, 3 types of certificate implemented