added some nice javadoc :D