added tick based turn function