update constructor to follow new protocol