added some core functionality