added core components
refactored