final changes, still needs cleanup before publishing the code