end of basic functionality
improves performance, reduce CPU usage
optimization: reduces render calls, limits keypresses