added self printing program