updated with thinkful gist