tested
creating core module