made more generic so you could copy and setup for other programs