gamedev.ru impulse adding method. very buggy.
fixed collisions(probably).