creating template class AbstractDust to centralize common behaviors