Revert "Basic classes"

This reverts commit 23f65e2193cae519b9b8863074aefd00b081634f.
Revert "Revert "Basic classes""

This reverts commit e4ce4950210a41cfdf8a1f2c6879b62b65650ef9.