first public implementation