initial real version