more PHP stuff, some incomplete