fixed assertions and optimised operator(map)