these methods need javadocs please