copied firectly
updated through conversion