stable working version complete