functionality updated2