many changes, now handles a function proxy for compatibility sanitize on-fly (+  implement strings)