Initial commit of trying to isolate free surface stuff.  Still plenty of cleanup to do