this is an abstract class, has nothing to do how you use it (eg passing no data, or your favourite colour...)