tidied core classes & updated docs