why is it abstract ?