elements on canvas dynamically reposition to fit