abstracted traits models
tweaks