use Thread.pass instead of sleep