Move HeadData into package "datatypes"

Because this is a datatype class and not a utility class.
Example of nice Javadoc section
Change the order and place of initialising these variables.
Check for a negative instead of a positive

Easier to read.
Move head dropping into a seperate class
Use headData variable here as well!