Rescue me from rewriting all these from scratch please :-(