working version. still need a good tutorial page