add more useful includes and functions