First version of this implementation.