fully working.  tested with glider