making it work with genral programs