tried to implement argument map