externalize core classes