Desired functions implemented