removed base, extern, local, static and finally keyword. added defer and compiler code