parking lot: from refactor to design pattern