add helper methods and docs