How does the Simulise library work?