Complete the implementation