implicitly convert future when possible for better error checking
wrote test for student and fixed a bug in that code