Avoid system()