better copy, and better api
compiled is not a public property