fix is_empty
add data, max_size