based on <iOS Programming 3rd edition> for demos were rewitten using Swift