obviously need to also handle left offset