includes and functions