added repel mechanism