first attempt at credentials model