allow ;, some cleanups
fix false return value through local