Added HaulS4 class definition, generics and constructor