several modification