by cycle, use 63ms, can be optimized to 0ms