added type propagation so that errors are annotated; cleaned up typecheker