split to client and share module