add helper methods, keeping everything DRY
finish most of query wrappers