refactor to use method wrappers