now with non-blocking tick simulation!