added self option