First version of system.  Not yet tested