several improvements :)