added traits and test