many changes but does not works yet