made pretty with javadocs kind of