Factored all compilation package out
changed the builder and the adapter to support cumulative compile
fixed the adapter caching issue by instantiating the builder in the prepare method call. so that the builder is just alive for one pair of prepare/ run method calls.