implemented traits to further simplify classes