source code from FIT course PA1