fixed relocate to be generic