work in progress on docker support. added many features and tests.