added my own functions