improved implementation of copying assignments to cover global-to-local copies
another try at fixing issue #29: covert floats to doubles where needed