turned PC registration to handle IBO as well, some refactoring