First commit - basic functionality.