Implemented 3 functions