closes #3 adds support for arbitrary grade divisions