Widgets need to implement transform