add the sim function