See full class description below..