move towards position independent code