Required functions are implemented