some improuvements!