Hopefully, final version for week4