preincrement is recommended for non primitive types