core functionality updated again