new gem
fixed buggy assignment behavior, added user_id validation