c89 & java 6 compliance