add lightuserdata support