added includes and added mandatory structure to act as a normal
constructor