Major rewrite supporting source maps!