basic home made gen_server