working
some reorganization