implement relative positioning with optional offsets