updates to make generic