imported several shop submodules, overall code cleanup