added more includes and dryed up a bit