Initial commit. Somewhat crude initial implementation.