A basic working first version.