new abstract demo class