Initial implementation based on specification javadoc