adding tests. compile now returns an IoResult