moved register_all into core and added optional path argument