fly.c

re-write from scratch