Simple changes
Better queue (less innefficient and tried-to-be-beautiful-and-complicated-and-simple-but-failed)
Better selector.contains()