adds basic functionality
allows for general trait-mapping