traits, don't abuse this to achieve multiple inheritance