added java 6 compatibility