less function calls
smoother