Created for the Course Project by Kasem Leekumjorn