Basic working version complete. More work needs to be done.