uses exec instead of spawn