added helper traits and comments