partway through implementing Steve's reccs.  not working yet