Integrating core improvement changes

Pull request to integrate the changes done in the core with the rest of the project.