essential for functionality