refactoring, added core pacakge