using different methods depending on the speed