add push, fix is_map