added more base functionality to trait