first public version, full rework