added ItemBased filtering; refactoring