Apache-ish abstract added