-) some performance changes, but there some errors