beginning big LP refactor