See Full Class Description Below