Added Smalltalk implementation.