cleaned up getBoundingClientRect