BOY: add architecture doc, update javadoc