preparing having Element generic