james | continued refactoring