adapting to user_space