add framework for automatic registration