Initial implementation.
Commit initial implementation attempt 2.