added may and perform methods