Everything as described top class