add javadocs, annotation metadata