Some code cleaning, javadoc comments and strictened requirements.