added comments and constants to be defined later