additions from Aaron Bedra