FINAL COMMIT working version