switched to primitive types for readability (this is only a syntax change since Groovy does not have primatives)