traits concept implemented