intial documention and lots of debugging print statements