Cleaned up quite a bit removing some redundant classes