Final working version 1.0