2-1 written.
2-2

Added comments and spec.