Major refactor, now with descriptors