re-working rotten class, finishing api