added some functional methods