Middle layer being built to support all theuse cases