Implement cond with some caveats
Implmenent begin to workaround the shortcomings in cond