add todos and javadoc