improve of userdata. more operators overloading. little refactor