Removed canvas, using hammer.js for all mouse stuffs. Small bug fix for click firing after double click :) Where are semaphores when you need them. Perhaps look into implementing promises clientside