This is a very nice class

WIP