much nice, very code
merge