some modified for docker