A very basic, very rough, somewhat working version.