Added pull restriction, made range actually work, use range modifiers, added testing