Updated for undergraduate projects.