core functionality updated