let's do this properly and learn