refactored factory to core so as to represent its fundamental
functionalities and objectives.