Add and use a new smart_system method that wraps system