early version to seperate client and server modules