working version
new additions