Changed x,y to int.
Implemented surface components.
Forward declared enums.