Written some parts of the implementation.