basic definition serving both server & client