big step closer to replacing all of the current functionality