made all definitions in separate top-level
cleaned up testing harness
added strings