Nice idea and implementation. There is a bug when obstacles cannot be fully pull to its correct position which result in a deadlock. But everything is good overall