added id/assign, not working perfectly but compiling