completely edited methods