loop instead of recursion because proper tail calls aren't here yet #208
building with readable names enabled
build