add methods perform