more functions definations