change names and do some documentation