Migrate core module to spray